/*
 * Copyright (c) 2020 hebeiyiliuba.com
 * All rights reserved.
 *
 */
package org.jeecg.modules.third.jg.report.freight.information.dto.shippingnote;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamConverter;
import lombok.Data;

import java.io.Serializable;

/**
 * 电子运单
 *
 * @author duanlikao
 * @created 2021/1/4
 */
@Data
public class ShippingNoteDTO implements Serializable {
    /**
     * 原始单号 上游企业委托运输单号
     */
    @XStreamAlias("originaldocumentnumber")
    private String originalDocumentNumber;
    /**
     * 运单号
     */
    @XStreamAlias("shippingnotenumber")
    private String shippingNoteNumber;

    /**
     * 运输总车辆数 同一运单号的货物总共 使用的运输车辆总数
     */
    @XStreamAlias("vehicleamount")
    private int vehicleAmount;
    /**
     * 分段分单号 分段运输和多车运输由 四位数字组成， 前两位代表一 单多车的序号，后两位代表分 段序号。
     * 若运输形式为一单一 车填 0000。
     */
    @XStreamAlias("serialnumber")
    private String serialNumber;
    /**
     * 运输组织类型代码
     * 1 公路运输
     * 2 公铁联运
     * 3 公水联运
     * 4 公空联运
     * 5 公铁水联运
     * 6 公铁空联运
     * 7 公水空联运
     * 8 公铁水空联运
     */
    @XStreamAlias("transporttypecode")
    private Integer transportTypeCode;
    /**
     * 运单上传 时间
     */
    @XStreamAlias("sendtoprodatetime")
    private String sendToProDateTime;
    /**
     * 网络货运 经营者名称
     */
    @XStreamAlias("carrier")
    private String carrier;
    /**
     * 统一社会 信用代码
     */
    @XStreamAlias("unifiedsocialcreditidentifier")
    private String unifiedSocialCreditIdentifier;
    /**
     * 道路运输经营许可 网络货运经营者的道路 运输经营许可证编号。
     */
    @XStreamAlias("permitnumber")
    private String permitNumber;
    /**
     * 运单生成时间 网络货运经营者信息系 统正式成交生成运单的日期时 间。YYYYMMDDhhmmss
     */
    @XStreamAlias("consignmentdatetime")
    private String consignmentDateTime;
    /**
     * 业务类型代码 代码集。 BusinessTypeCodeEnum
     */
    @XStreamAlias("businesstypecode")
    private String businessTypeCode;
    /**
     * 发货日期时间 本单货物的发货时间 。 YYYYMMDDhhmmss
     */
    @XStreamAlias("despatchactualdatetime")
    private String despatchActualDateTime;
    /**
     * 收货日期时间 ，本单货物的收货时间 YYYYMMDDhhmmss 。
     */
    @XStreamAlias("goodsreceiptdatetime")
    private String goodsReceiptDateTime;
    /**
     * 运费金额  托运人与网络货运经营 者签订运输合同确定的运费金 额，货币单位为人民币（元） ，
     * 保留 3 位小数，如整数的话 ，以.000 填充。如是一笔业务 分几辆车运，
     * 需将托运人针对 这笔业务付给网络货运经营者 的运输费用分摊到每辆车上。
     */
    @XStreamAlias("totalmonetaryamount")
    private String totalMonetaryAmount;

    private String totalPaymentAmount;

    @XStreamAlias("consignorinfo")
    private ConsignorInfo consignorInfo;

    @XStreamAlias("consigneeinfo")
    private ConsigneeInfo consigneeInfo;

    @XStreamAlias("priceinfo")
    private PriceInfo priceInfo;

    private VehicleInfo vehicleInfo;

    //辽宁上报XML报文用的是这个类
    @XStreamAlias("vehicleinfo")
    private LiaoningVehicleInfo liaoningVehicleInfo;

    @XStreamAlias("actualcarrierinfo")
    private ActualCarrierInfo actualCarrierInfo;

    @XStreamAlias("insuranceinformation")
    private InsuranceInformation insuranceInformation;

    private String remark;

    @XStreamAlias("appkey")
    private String appkey ;

    public String getAppkey() {
        return appkey;
    }

    public void setAppkey(String appkey) {
        this.appkey = appkey;
    }

    public void setOriginalDocumentNumber(String originalDocumentNumber) {
        this.originalDocumentNumber = originalDocumentNumber;
    }
    public String getOriginalDocumentNumber() {
        return originalDocumentNumber;
    }

    public void setShippingNoteNumber(String shippingNoteNumber) {
        this.shippingNoteNumber = shippingNoteNumber;
    }
    public String getShippingNoteNumber() {
        return shippingNoteNumber;
    }

    public void setVehicleAmount(int vehicleAmount) {
        this.vehicleAmount = vehicleAmount;
    }
    public int getVehicleAmount() {
        return vehicleAmount;
    }

    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }
    public String getSerialNumber() {
        return serialNumber;
    }

    public void setTransportTypeCode(int transportTypeCode) {
        this.transportTypeCode = transportTypeCode;
    }
    public int getTransportTypeCode() {
        return transportTypeCode;
    }

    public void setSendToProDateTime(String sendToProDateTime) {
        this.sendToProDateTime = sendToProDateTime;
    }
    public String getSendToProDateTime() {
        return sendToProDateTime;
    }

    public void setCarrier(String carrier) {
        this.carrier = carrier;
    }
    public String getCarrier() {
        return carrier;
    }

    public void setUnifiedSocialCreditIdentifier(String unifiedSocialCreditIdentifier) {
        this.unifiedSocialCreditIdentifier = unifiedSocialCreditIdentifier;
    }
    public String getUnifiedSocialCreditIdentifier() {
        return unifiedSocialCreditIdentifier;
    }

    public void setPermitNumber(String permitNumber) {
        this.permitNumber = permitNumber;
    }
    public String getPermitNumber() {
        return permitNumber;
    }

    public void setConsignmentDateTime(String consignmentDateTime) {
        this.consignmentDateTime = consignmentDateTime;
    }
    public String getConsignmentDateTime() {
        return consignmentDateTime;
    }

    public void setBusinessTypeCode(String businessTypeCode) {
        this.businessTypeCode = businessTypeCode;
    }
    public String getBusinessTypeCode() {
        return businessTypeCode;
    }

    public void setDespatchActualDateTime(String despatchActualDateTime) {
        this.despatchActualDateTime = despatchActualDateTime;
    }
    public String getDespatchActualDateTime() {
        return despatchActualDateTime;
    }

    public void setGoodsReceiptDateTime(String goodsReceiptDateTime) {
        this.goodsReceiptDateTime = goodsReceiptDateTime;
    }
    public String getGoodsReceiptDateTime() {
        return goodsReceiptDateTime;
    }

    public void setTotalMonetaryAmount(String totalMonetaryAmount) {
        this.totalMonetaryAmount = totalMonetaryAmount;
    }
    public String getTotalMonetaryAmount() {
        return totalMonetaryAmount;
    }

    public void setConsignorInfo(ConsignorInfo consignorInfo) {
        this.consignorInfo = consignorInfo;
    }
    public ConsignorInfo getConsignorInfo() {
        return consignorInfo;
    }

    public void setConsigneeInfo(ConsigneeInfo consigneeInfo) {
        this.consigneeInfo = consigneeInfo;
    }
    public ConsigneeInfo getConsigneeInfo() {
        return consigneeInfo;
    }

    public void setVehicleInfo(VehicleInfo vehicleInfo) {
        this.vehicleInfo = vehicleInfo;
    }
    public VehicleInfo getVehicleInfo() {
        return vehicleInfo;
    }

    public void setActualCarrierInfo(ActualCarrierInfo actualCarrierInfo) {
        this.actualCarrierInfo = actualCarrierInfo;
    }
    public ActualCarrierInfo getActualCarrierInfo() {
        return actualCarrierInfo;
    }

    public void setInsuranceInformation(InsuranceInformation insuranceInformation) {
        this.insuranceInformation = insuranceInformation;
    }
    public InsuranceInformation getInsuranceInformation() {
        return insuranceInformation;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getRemark() {
        return remark;
    }

    public String getTotalPaymentAmount() {
        return totalPaymentAmount;
    }

    public void setTotalPaymentAmount(String totalPaymentAmount) {
        this.totalPaymentAmount = totalPaymentAmount;
    }


}
